/**
 * 对两个或多个数据项进行比较，以确定他们是否相等，或确定他们之间的大小关系及排列顺序称为比较
 * 可以用之前学过的Arrays.sort进行排序 
 * （1）Comparable接口
 * 此几口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序，类的compareTo方法被称为它的自然比较方法。
 * （2）Comparator接口     用一个新的类封装 比较这个方法 
 * Comparable接口是要求自定义类取实现，按照OO原则，对修改关闭，对扩展开放。
 * 那么如果这个类已经定义好了，不想再去修改它，那如何实现比较呢？
 * comparator接口：强行对某个对象collection进行整体排序的比较。
 
 对象比较器接口 comparable 这个接口是通用接口 很多类都可以使用此接口
 用的时候 让 类 与 需要对比的类进行比较 。是和 Arrays.sort一起用的
 记得在泛型<>标记需要对比的类 和重写 接口的方法 就是compareto这个函数（写规则） 和 getstring(显示字符串信息）
 
 */
/*
package com.leo.第七章_常用类库api;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;

public class U7_L6_对象比较器_接口 {
	public static void main(String[] args) {
		
		Cat[] cats= {new Cat("a",2),new Cat("b",3),new Cat("c",1)};
		Arrays.sort(cats);
		System.out.println(Arrays.toString(cats));
		
		
		//comparator 就是新建一个 类把此类当成一个独立的比较器 继承 compartor这个通用接口
		//在使用sort方法的时候记得启动这个类方法
		Dog[] dogs= {new Dog("ab",2),new Dog("bb",3),new Dog("cz",1)};
		Arrays.sort(dogs,new Dogcomparator());
		System.out.println(Arrays.toString(dogs));
	}

}

class Cat implements Comparable<Cat>{
	String name;
	int age;
	public Cat() {
		super();
	}
	
	public Cat(String name,int age) {
		super();
		this.name=name;
		this.age=age;
	}
	
	
	@Override
	public String toString() {
		return "Cat [name=" + name + ", age=" + age + "]";
	}

	@Override
	public int compareTo(Cat o) {
		// TODO Auto-generated method stub
		//从小到大排序
		return this.age-o.age;
	}
	
}

class Dog {
	String name;
	int age;
	public Dog() {
		super();
	}
	
	public Dog(String name,int age) {
		super();
		this.name=name;
		this.age=age;
	}

	@Override
	public String toString() {
		return "Dog [name=" + name + ", age=" + age + "]";
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
}

class Dogcomparator implements Comparator<Dog>{

	@Override
	public int compare(Dog o1, Dog o2) {
		// TODO Auto-generated method stub
		return o1.getAge()-o2.getAge();
	}
	
}
*/


